package daohibernate;

import hibernate.HibernateUtil;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;

import entities.TipoEvento;


public class TipoEventoDAO {
	private static TipoEventoDAO instancia = null;	
	private static SessionFactory sf = null;	
	
	
	public static TipoEventoDAO getInstancia(){
		if(instancia == null){
			sf = HibernateUtil.getSessionFactory();
			instancia = new TipoEventoDAO();
		} 
		return instancia;
	}

	public void altaTipoEvento(TipoEvento c){
		Session s = sf.openSession();
		s.beginTransaction();
		s.persist(c);
		s.flush();
		s.getTransaction().commit();
		s.close();
		System.out.println("TipoEvento persistido en la BD.");
	}
	
	public TipoEvento buscarTipoEvento(Integer idTipoEvento){
		Session s = sf.openSession();
		@SuppressWarnings("unchecked")
		List<TipoEvento> tipoEventos = s.createQuery("from TipoEvento where idTipoEvento = '" + idTipoEvento + "'").list();
		s.close();
		for(TipoEvento c : tipoEventos){
			return c;
		}
		return null;
	}
	
	public List<TipoEvento> getTipoEvento(){
		Session s = sf.openSession();
		@SuppressWarnings("unchecked")
		List<TipoEvento> tipoEventos = s.createQuery("from TipoEvento").list();
		s.close();
		return tipoEventos;
	}

}

